﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;

namespace BW.WMS.WareHouseAllot
{
    /// <summary>
    /// 自动生成编码实体
    /// </summary>
    public class DoccodeModel: AuditedAggregateRoot<Guid>
    {
        /// <summary>
        /// 业务名称（对应图中的"业务名称"）
        /// </summary>
        public string ServiceName { get; set; }

        /// <summary>
        /// 单据字段（对应图中的"单据字段"）
        /// </summary>
        public string Receipts { get; set; }

        /// <summary>
        /// 前缀（对应图中的"前缀"）
        /// </summary>
        public string Prefix { get; set; }

        /// <summary>
        /// 规则类型（对应图中的"规则类型"：年、年月、年月日、无）
        /// </summary>
        public string RuleType { get; set; }

        /// <summary>
        /// 编号位数（对应图中的"编号位数"）
        /// </summary>
        public int CodeNum { get; set; }

        /// <summary>
        /// 增长类型（对应图中的"增长类型"）
        /// </summary>
        public string IncreaseType { get; set; }

        /// <summary>
        /// 连接符号（对应图中的"连接符号"）
        /// </summary>
        public string Connector { get; set; }

        /// <summary>
        /// 规则名称（对应图中的"规则名称"）
        /// </summary>
        public string RuleName { get; set; }

        /// <summary>
        /// 日期排序字段（对应图中的"日期排序字段"）
        /// </summary>
        public string DateField { get; set; }

        // 【新增】用于流水号管理
        /// <summary>
        /// 当前流水号
        /// </summary>
        public long CurrentSequence { get; set; }

        /// <summary>
        /// 上次生成编码的日期
        /// </summary>
        public DateTime? LastGeneratedDate { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [MaxLength(30, ErrorMessage = "创建人长度不能超过30个字符")]
        public string CreateName { get; set; }

        /// <summary>
        /// 软删除
        /// </summary>
        public bool IsDeleted { get; set; } = false;

    }
}
